package edu.biwu.controller.json;

import edu.biwu.vo.Product;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

//@Controller
@RestController //相当于@Controller+@ResponseBody,所有的方法都响应json格式数据
@RequestMapping("/product")
public class ProductController {
    /**
     * 基本类型参数
     *
     * @param pid
     * @return
     */
    @RequestMapping("/findById.do")
    public /*@ResponseBody*/ Product findById(@RequestBody Integer pid) {
        return new Product(pid, "华为手机", 5000.00);
    }

    //按下/**Enter可以生成方法注释

    /**
     * 数组类型参数
     *
     * @param ids
     * @return
     */
    @RequestMapping("/findByIds.do")
    public /*@ResponseBody*/ Integer[] findByIds(@RequestBody Integer[] ids) {
        return ids;
    }

    /**
     * VO参数及包装类
     *
     * @param product
     * @return
     */
    @RequestMapping("/updateProduct.do")
    public Product updateProduct(@RequestBody Product product) {
        int i = 1/0;
        return product;
    }

    /**
     * List集合参数
     * @param products
     * @return 商品集合 List json数据
     */
    @RequestMapping("/findByList.do")
    public List<Product> findByList(@RequestBody List<Product> products){
        products.forEach(System.out::println);
        return products;
    }

    @RequestMapping("/findByMap.do")
    public Map<Integer, Product> findByMap(@RequestBody Map<Integer, Product> map) {
        map.forEach((key, value) -> System.out.println(key + " " + value));
        return map;
    }
}
